| Формы | 
					
					
						| Форма | 
						<form action="check.php" name="test-form" method="post">
  <table>
    <caption>Форма</caption>
    <tr>
      <td><label for="first-name-id">Имя: </label></td>
      <td><input type="text" placeholder="Name" name="first-name" id="first-name-id"></td>
    </tr>
    <tr>
      <td><label for="sername-id">Фамилия: </label></td>
      <td><input type="text" placeholder="Sername" name="sername" id="sername-id"></td>
    </tr>
    <tr>
    <td><label for="email-id">Email: </label></td>
      <td><input type="email" placeholder="Email" name="email" id="email-id"></td>
    </tr>
    <tr>
      <td><label for="date-id">Дата: </label></td>
      <td><input type="date" placeholder="Date" name="date" id="date-id"></td>
    </tr>
    <tr>
      <td>Отправить: </td>
      <td><input type="submit" value="Done" name="done"></td>
      </tr>
  </table>
</form> 
							
						 | 
						
							action="путь к php-файлу" - файл обработки формы,
							если записать action="", то обработка будет осуществляться на этой же странице 
							name и method - обязательные атрибуты; 
							post - сохраняет данные для отправки в php-файле, который указан в атрибуте action; 
							get - делает запрос к серверу через адресную строку браузера (?text=ключевое слово1 ключевое слово2)  
							submit - после нажатия делает переход на файл, указанный в action(check.php)
						 | 
					
					
						Глобальные  переменные | 
						print_r($_POST);
print_r($_GET);
print_r($_REQUEST); 
						 | 
						
$_POST - хранит все переданные значения в ассоциативном массиве, имена индексов которого совпадают с атрибутами name у полей формы.  
$_GET - хранит все запрашиваемые значения в ассоциативном массиве, имена индексов которого совпадают с атрибутами name у полей формы.  
В них храняться все переданные значения пользователей 
$_REQUEST - хранит все переданные значения и методом get и post
						 | 
					
					
						| Обработка формы (check.php) | 
						// ВЫВОД ДАННЫХ $_POST:
print_r($_POST);
echo "<hr>";
// ВЫВОД ВВЕДЁННЫХ ДАННЫХ:
// Имя:
echo "<b>1. Ваше имя: </b>";
echo("<i>".$_POST["first-name"]."</i><br>");
// Фамилия:
echo "<b>2. Ваша фамилия: </b>";
echo("<i>".$_POST["sername"]."</i><br>");
// E-mail:
echo "<b>3. Ваш e-mail: </b>";
echo("<i>".$_POST["email"]."</i><br>");
// Дата:
echo "<b>4. Дата заполнения: </b>";
echo("<i>".$_POST["date"]."</i><br>");
// ВАЛИДАЦИЯ ФОРМЫ:
if ($_POST["first-name"] == "") {
  echo "<span style=\"color: red;\">Вы не ввели своё <b>имя</b>! </span><br>";
}
if ($_POST["sername"] == "") {
  echo "<span style=\"color: red;\">Вы не ввели свою <b>фамилию</b>! </span><br>";
}
if ($_POST["email"] == "") {
  echo "<span style=\"color: red;\">Вы не ввели ваш <b>email</b>! </span><br>";
}
if ($_POST["date"] == "") {
  echo "<span style=\"color: red;\">Вы не ввели <b>дату заполнения</b>!</span> <br>";
}
if (($_POST["first-name"] == true) &&
    ($_POST["sername"]    == true) &&
    ($_POST["email"]      == true) &&
    ($_POST["sername"]    == true) &&
    ($_POST["date"]       == true)) {
  echo "<span style=\"color: green; font-size: 2em;\"><b>Вы полностью заполнили форму!</b></span>";
} 
						 | 
						
							После нажатия на <input type="submit"> происходит перенаправление на файл check.php, и вся обработка формы будет выполненна в нём
						 | 
					
					
						| Обработка формы внутри текущей страницы | 
						// Обработка формы будет выполнена после нажатия на
<input[type="submit"] name="done">, так работает функция isset
if (isset($_POST["done"])) {
  echo "<hr> <h2>Выполнена обработка формы</h2>";
  // php-код из check.php
} 
						 | 
						
							Можно писать php-код на самом "верху" страницы.  
							Значение атрибута action оставить пустым (action="").
							Результат выполнения php-кода будет отображён вверху страницы
						 | 
					
					
						| Куки | 
						setcookie("num", 10, time() + 10);
$_COOKIE;
session_start();
$_SESSION;
session_destroy(); 
						 | 
						Куки хранятся в браузере, а Сессии на сервере | 
					
					
						| Обработка формы | 
					
					
						| Сохранение данных в полях формы после перезагрузки страницы | 
						
// 1. Сохраняем значение полей формы в переменные
if (isset($_POST["done"])) {
  $first_name = htmlspecialchars($_POST["fifrst-name"]);
  ...
// 2. Создаём сессию и сохраняем все переменные в сессию
  $_SESSION["first-name"] = $first_name;
  ...
}
// 3. Прописываем в поля форм значения массива SESSION
<input type="text name="first-name"
value="<?php echo $_SESSION["first-name"]>">    или так:
value="<?=$_SESSION["first-name"]>">
 
						 | 
						 | 
					
					
						| Появление ошибки при незаполнении форм | 
						
// 1. Создаём условие внутри основного
$error = false;
if ($first_name == "" || !preg_match("/@/", $first_name)) {
  $error_first_name = "Вы не корректно указали своё имя";
  $error = true;
}
// далее создаём условие для каждого поля
// 2. Создаём переменные ошибок
$error_first_name = "Вы не указали своё имя";
// 3. Вставляем спаны после полей форм
<input type="text name="first-name"
  value="<?=$_SESSION["first-name"]>">
  <span style="color: red;"></span>
// 4. Прописываем в него значение переменной $error
<span style="color: red;"><?=$error_first_name></span>
 
						 | 
						!preg_match("/@/", $first_name) - проверяет, чтобы поле не содержало спецсимволы или некорректность.  
						Если $error = true, то сообщение не будем отправлять 
						strlen - также можно указывать в условии, проверка на длину строки
						 | 
					
					
						| Отправка формы | 
						
// Создаём еще одно внутреннее условие
if (!$error) {
  пишем код для отправки на почту или в базу данных
}
 
						 | 
						 |